package untiring07.j2ee.advanced;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//서블릿을 웹에서 실행(배포)하는 방법
// 서블릿 2.5에서 지원했던 web.xml을 사용
// 서블릿3.0에서 지원하는 어노테이션 표기법을 사용

// 서블릿 배포 기술자 :web.xml
// deployment descriptor
// 파일은 WEB-INF 폴더 아래에 있음
// 배포할 서블릿은 servlet태그에 servlet-name, servlet-class로 정의함
// 서블릿 호출 방법은 servlet-mapping태그에 servlet-name, url-pattern으로 정의함

// 서블릿3에서 도입한 어노테이션 
// xml설정없이 서블릿 소스 파일에 정의해서 사용
// @WebServlet : 서블릿 정의시 사용
// 서블릿 이름, 서블릿 호출 url 등을 정의 일반적으로 name 속성은 생략함
// url 패턴정의시/ 로 시작해야 함

// web.xml vs @annotation
// 모든 서블릿 설정 정보는 단일 파일인 web.xml에 저장
// -> 웹 어플리케이션의 모든 서블릿을 중앙집중식으로 관리
// 반면, 어노테이션은 각각의 서블릿 파일에 개별적으로 저장
// -> 웹 어플리 케이션의 모든 서블릿을 분산시켜 관리
// 하지만, web.xml에서만 지정해야 하는 설정이 존재하기 때문에 2가지 방식을 혼용해서 사용하는것을 추천


@WebServlet("/J03HelloServlet3") //핵심
public class J03HelloServlet3 extends HttpServlet {
	
	
	private static final long serialVersionUID = 1L;
       
    
	protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		res.setContentType("text/html;charset=UTF-8");
		PrintWriter out = res.getWriter();
		out.print("<h1>안녕하신가<h1>");
	
	}
	
	
	protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
	}

}
